package com.dhcc.bpm.modules.scf.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dhcc.bpm.modules.scf.dto.ScfRenewableOutInfoDTO;
import com.dhcc.bpm.modules.scf.entity.ScfRenewableOutInfo;
import com.dhcc.bpm.modules.scf.vo.ScfRenewableOutInfoVO.ScfGetRenewableOutDetailsVO;
import com.dhcc.bpm.modules.scf.vo.ScfRenewableOutInfoVO.ScfGetRenewableOutListVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * 再生资源出库服务类
 *
 * @author liuguoting
 * @since 2023-09-22
 */
public interface IScfRenewableOutInfoService extends IService<ScfRenewableOutInfo> {

    /**
     * 自定义分页
     *
     * @param page
     * @param scfRenewableOutInfo
     * @return
     */
    IPage<ScfGetRenewableOutListVO> selectScfRenewableOutInfoPage(IPage<ScfGetRenewableOutListVO> page, ScfRenewableOutInfoDTO scfRenewableOutInfo);

    /**
     * 查看出库详情信息
     *
     * @param scfRenewableOutInfo
     * @return
     */
    ScfGetRenewableOutDetailsVO getDetails(ScfRenewableOutInfoDTO scfRenewableOutInfo);

    /**
     * 新增出库信息
     *
     * @param scfRenewableOutInfo
     * @return
     */
    Boolean saveRenewableOutInfo(ScfRenewableOutInfoDTO scfRenewableOutInfo) throws Exception;

    /**
     * 导入入库信息
     *
     * @param scfRenewableOutInfos
     * @return
     */
    int bachSaveRenewableOutInfo(List<ScfRenewableOutInfo> scfRenewableOutInfos, String operatorId);

    /**
     * 更新出库信息
     *
     * @param scfRenewableOutInfo
     * @return
     */
    Boolean updateRenewableOutInfo(ScfRenewableOutInfoDTO scfRenewableOutInfo);

    /**
     * 再生资源出库信息-批量导入
     * 当前用户ID
     *
     * @param file
     * @return
     */
    List<ScfRenewableOutInfo> batchSaveRenewableOutInfo(String operatorId, MultipartFile file) throws IOException;

    Boolean deleteByIds(String[] split);


}
